Chip cards or integrated circuit cards, both of which are commonly known as smart-cards, TPM (trusted platform Module) ICs, or the like, are devices with an embedded integrated circuit, such as a processor and/or limited capacity, non-volatile memory device. The memory device may be an EEPROM (electrically erasable programmable read-only memory) or the like, and it may store an operating system for the processor as well as smart-card applications, such as electronic banking applications, telephone applications in the case of SIM (subscriber identity module) smart-cards, or the like. The memory device may also store user authentication protocols, personalization data, such as telephone or bank account data or the like, user data, such as financial data or the like, private data, certificates or signatures used in various encryption techniques, etc. User data may be secured using a PIN (personal identification number) or a password as an access control measure. In order to access the protected data stored in the card's memory device, a user must be authenticated by providing the correct PIN or password.
FIG. 1 is a block diagram of a prior art integrated circuit, such as an integrated smart-card device 100, a SIM card, an electronic transaction card, an electronic identification card, a trusted platform Module (“TPM”), or the like, of the prior art. A central processing unit (“CPU”) 105 is embedded in smart-card device 100 and may include a processor 110 and an integrated random access memory (“RAM”) 120, a non-volatile memory 115, such as an EEPROM or flash memory, and a read-only memory (“ROM”) 125. The processor 110 may include a cryptography engine 126, such as an advanced encryption system (“AES”) encryption engine, as a portion of access control circuitry of CPU 105, that can perform AES protocols, user authentication protocols, such as Public Key Infrastructure (“PKI”) authentication, encryption and decryption of data, etc. An input/output interface 127 is in communication with the CPU 105 and may be a USB (universal serial bus) interface for connecting directly to a host 118, such as a personal computer, a contactless interface, an ISO 7816 interface for use with an ISO 7816 card reader, etc. The ROM 125 typically stores the operating system of smart-card device 100. The smart-card device 100 may also include a file management system 130 that may be used to manage the address space of the non-volatile memory 115, and a key management system 135 for managing and storing one or more encryption and/or decryption keys, such as one or more AES encryption and/or decryption keys or the like. The non-volatile memory 115 or the key management system 135 may store private keys, certificates that may include public keys as part of public/private key encryption, applications, such as electronic banking applications, telephone applications, etc. The non-volatile memory 115 may further include upgrades or patches for the smart-card operating system.
During operation, the smart-card device 100 is placed in communication with a host 118 via a card reader, for example. An identifier, such as PIN or password, is input into the host 118 by as user. The reader may then pass the user-entered identifier on to the smart-card device 100 for verification so that the smart-card can authenticate the user. The smart-card device 100 then indicates to the host 118 that the user is either authenticated or not authenticated. Alternatively, the smart-card device 100 may be in direct communication with the host 118 via a USB interface, for example. In which case, the identifier is input into the host 118 and is then passed directly to the smart-card device 100 via the USB interface for authentication of the user. After user authentication, the processor 110 either decrypts data from the non-volatile memory 115 for output to the host 118, or it encrypts data received from the host 118 for storage in the non-volatile memory 115, e.g., using one or more encryption and/or decryption keys, such as AES keys, from the key management system 135.
Although the smart-card device 100 includes the non-volatile memory 115, the capacity of the memory 115 is normally very limited. Therefore, larger and more costly embedded integrated memory may be needed in order to meet a demand for increased storage capacity for storing additional and/or more complex applications, user data, etc. This could be provided by including a separate non-volatile memory device packaged with, and coupled to, the smart-card device 100.
If such memory was provided, the memory might be partitioned, and at least one of the partitions might be designated for storing data that should be protected from being overwritten or erased either generally or by specific classes of individuals. The data in this read-only partition might be either instructions that are executed by the processor 110 or data that, for one reason or another, should not be overwritten by a user. For example, if the data were instructions for an application executed by the processor 110 in the smart-card device 105, inadvertent erasure of the instructions would make the application unusable. The data might be stored in encrypted or unencrypted form. Regardless of the nature of the data, preventing the data from being overwritten might be difficult because the memory device would be separate from the smart-card device 100. The data in the memory could be protected from being overwritten by making the memory device a dedicated read-only memory (“ROM”) device. However, this approach would prevent the data in the memory device from being updated as needed by someone who is authorized to do so.
There is therefore a need for a system and method for preventing data stored in an integrated memory device that is packaged with a smart-card device from being overwritten without authorization, and for allowing authorized updating of the read-only data.